草庐IT

c++ - std::byte 的用例

全部标签

c++ - 在函数完整性检查期间如何处理整数溢出?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:BestwaytodetectintegeroverflowinC/C++我正在用C编写一个函数,但问题是通用的。该函数接受三个整数并返回有关这三个整数的一些信息。我怀疑这里的问题是整数可以达到最大值,这会导致溢出。例如:如果我将a作为最大值传递并且b可以是1-max的任何值,那么在这种情况下,if条件中的表达式(a+b)>c会导致溢出吗?如果是这样,我该如何处理?我的解决方案是保留一个长整数作为临时变量以保留a+b的值并在表达式中使用它,但这听起来很脏。引用这个片段:inttriangle_type(int

c++ - std::initializer_list<> 和一个引用参数

我刚开始使用初始化列表,我想知道它们的工作方式是否与其他STL容器相似。我的意思是他们复制值(value)观吗?我想做的是一个简单的min()函数,如下所示:templateT&minArgs(conststd::initializer_list&Arguments){constT*Smallest=Arguments.begin();for(constT*I=begin(Arguments);I!=end(Arguments);++I){if(*I然而,当我调用函数时,我从GCC得到了这个:error:'const'qualifierscannotbeappliedto'int&'我

c++ - 如何将更新的 git-hash 嵌入到 Version.hpp 中?

原标题:如何让git忽略我的文件而不考虑分支?我有以下按预期工作的checkout后文件:#!/usr/bin/rubycmd=ENV["HOME"]+"/dev/pitbull/cpp/bin/gen_version.rb--write"`#{cmd}`gen_version.rb脚本计算出时间戳、最后一个主标记和HEADgit哈希并写入同样在git中的VERSION.hpp文件。然后我使用usegitupdate-index--assume-unchangedVERSION.hpp让git忽略我的更改。现在,如果我留在我的开发分支上,这会很好用。但是当我尝试getcheckoutm

c++ - 打印 BST 的 Diameter 对应的节点组成的路径

我知道如何找到BST的直径。intdiameter(structnode*tree){if(tree==0)return0;intlheight=height(tree->left);intrheight=height(tree->right);intldiameter=diameter(tree->left);intrdiameter=diameter(tree->right);returnmax(lheight+rheight+1,max(ldiameter,rdiameter));}intheight(structnode*node){if(node==NULL)return0;

c++ - 可以使用 memset 来填充一组 std::complex<float> 吗?

具体来说,我想知道这一行是否:memset(cjzyp,(0,0),size_cjzy*sizeof(std::complex));将填写cjzyp,complex的数组s,具有复数零值((0,0))。 最佳答案 std::memset将转换为unsignedchar的int作为第二个参数,它不会工作。使用std::fill代替http://www.cplusplus.com/reference/algorithm/fill/cjzyp=newstd::complex[100]std::fill(cjzyp,cjzyp+100,st

c++ - 如何检测包含 header 的位置

是否可以通过编程方式检测(并打印出)C++header的来源?我有一个像这样的标题://DeprecatedHeader.h__pragma(message("DeprecatedHeader.hisdeprecated-includeNewHeader.hinstead."))#include"NewHeader.h"如您所见,编译器是MSVC,但我有宏要包装。欢迎GCC,但如果不可能,我会只在Windows上启用“技巧”。但我正在寻找的是这样的输出"AnyOtherFile.cppwasincludingDeprecatedHeader.h,pleaseincludeNewHead

C++ - 构建带有 header 的数据包并通过 UDP 套接字发送它

我正在尝试构建一个将通过UDP发送的数据包。但是我在接收方没有得到正确的数据。我想在数据包中包含一个IPheader、UDPheader和需要发送的数据。在这种情况下,我只想发送“Hello”一词以及随机header信息。char*data="Hello";char*packet=(char*)malloc(sizeof(structiphdr)+sizeof(structudphdr)+strlen(data));structiphdr*ip=(structiphdr*)packet;structudphdr*udp=(structudphdr*)(packet+sizeof(str

c++ - 一种无需最大化内存即可实时缓冲高清视频的有效方法

我正在编写一个程序,涉及使用OpenCV实时处理来自网络摄像机的视频。我希望能够捕获(在处理过程中的任何时间)以前的图像(例如,十秒的值(value))并保存到视频文件中。我目前正在使用队列作为缓冲区(以推送“cv::Mat”数据)来执行此操作,但这显然效率不高,因为几秒钟的图像很快就会用完所有电脑内存。我尝试使用“cv::imencode”压缩图像,但使用PNG并没有太大区别,我需要一个使用硬盘驱动器内存且实时操作高效的解决方案。谁能提出一个非常简单有效的解决方案?编辑:只是为了让大家明白我此刻在做什么;这是10秒缓冲区的代码:voidrun(){cv::VideoCaptureca

c++ - 如何访问一片 packed_bits<> 作为 std::bitset<>?

我正在尝试实现packed_bits使用可变参数模板和std::bitset的类.特别是,我在编写get时遇到了问题返回对成员m_bits子集的引用的函数其中包含所有打包位。该功能应类似于std::get对于std::tuple.它应该作为一个引用叠加层,这样我就可以操作packed_bits的一个子集。.例如,usingmy_bits=packed_bits;my_bitsb;std::bitset&s0=get(b);std::bitset&s1=get(b);std::bitset&s2=get(b);更新下面是根据Yakk'srecommendationsbelow重写的代码.

c++ - SQL 解析器库 - 从查询中获取表名

我正在寻找一个C/C++SQL解析库,它能够为我提供查询所依赖的表的名称。我的期望:SELECT*FROMTABLEANATURALJOINTABLEB结果:TABLEA、TABLEB当然提供的例子非常简单。我已经编写了自己的解析器(基于Boost.Spirit)来处理SQL语法的一个子集,但我需要的是一个能够处理复杂(递归等)查询的解析器。你知道什么对此有用吗?我找到的是http://www.sqlparser.com-它是商业的,但正是我需要的。我还深入研究了PostgreSQL源代码,但没有效果。 最佳答案 Antlr可以为您